package cn.org.xiaosheng.hutool;

import cn.hutool.core.lang.Console;
import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HttpUtil;
import cn.org.xiaosheng.hutool.utils.GetUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author XiaoSheng
 * @date 2023-11-17
 * @dec 使用hutool工具模拟GET请求进行调用
 *
 * HttpUtil是应对简单场景下Http请求的工具类封装，此工具封装了HttpRequest对象常用操作，可以保证在一个方法之内完成Http请求。
 *
 * 此模块基于JDK的HttpUrlConnection封装完成，完整支持https、代理和文件上传。
 *
 */
@Controller
@ResponseBody
public class GetTest {

    @RequestMapping("/getTest1")
    public String getTest1() {
        Map<String, String> headers = new HashMap<>();
        headers.put("tenant-id", "1");
        headers.put("Authorization", "Bearer test1");
        headers.put("client-type", "web");
        headers.put("Conten-Type", "x-www-form-urlencoded");
        Map<String, Object> params = new HashMap<>();
        params.put("pageNo", "1");
        params.put("pageSize", "10");
        String response1 = GetUtils.getRequest("http://xxxx/admin-api/operate/service-provider/page", headers, params);
        String response2 = GetUtils.getRequest("http://xxxx/admin-api/operate/project-list/names", headers, params);
        System.out.println(response1);
        System.out.println(response2);
        return "success!";
    }

    @RequestMapping("/paqu")
    public String getTest2() {
        //请求列表页
        String listContent = HttpUtil.get("https://www.oschina.net/action/ajax/get_more_news_list?newsType=&p=3");
//使用正则获取所有标题
        List<String> titles = ReUtil.findAll("<span class=\"text-ellipsis\">(.*?)</span>", listContent, 1);
        for (String title : titles) {
            //打印标题
            Console.log(title);
        }
        return titles.toString();
    }


}
